using System.Reflection;
using AdvancedGod.People.Couples;

namespace AdvancedGod.People
{
  /// <summary>
  /// Represents botan
  /// </summary>
  [Couple(Pair = "Girl", Probability = 0.7, ChildType = "SmartGirl")]
  [Couple(Pair = "PrettyGirl", Probability = 1.0, ChildType = "PrettyGirl")]
  [Couple(Pair = "SmartGirl", Probability = 0.8, ChildType = "Book")]
  public class Botan : Student
  {
    #region public consts
    /// <summary>
    /// Minimum average mark
    /// </summary>
    public const double MinimumAverageMark = 3.1;

    /// <summary>
    /// Maximum average mark
    /// </summary>
    public const double MaximumAverageMark = 5.0;
    #endregion

    #region public properties
    /// <summary>
    /// Botan's average mark
    /// </summary>
    public double AveargeMark { get; set; }
    #endregion

    #region public methods
    /// <summary>
    /// Constructs class instance with field's values specified
    /// </summary>
    /// <param name="name">name of botan</param>
    public Botan(string name)
      : base(name)
    {
      AveargeMark = MinimumAverageMark;
    }
    #endregion

    #region Human overrided members
    /// <summary>
    /// Returns member info about concrete extended class
    /// </summary>
    /// <returns></returns>
    protected override MemberInfo GetMemberInfo()
    {
      return typeof(Botan);
    }
    #endregion
  }
}